Using a Programming Language for Digital System Design
نویسندگان
چکیده
ion. The language must provide an abstraction mechanism—that is, a means of building large systems from smaller, HDL-modeled components. The two main methods of composing large systems are procedure calls and declarative blocks. Designers typically use the latter to describe a netlist of blocks in which component instances are bound by shared variables. These blocks are useful in modeling structural components. It may also be necessary for the designer to represent an external view of the component independent from its implementation(s). Thus, the interface specification must be separate from the component’s body specification. Such a feature is useful for iteratively refining a hardware model through successive implementations, without altering the external view of the component. Reactive programming. As mentioned earlier, hardware models are best represented as nonterminating programs in continuous interaction with their environment. It is easy to capture nonterminating interaction with programming languages that use control constructs such as while loops, but these structures severely constrain implementation and event handling in a concurrent environment. For hardware modeling, reactivity requires the basic mechanisms of synchronization and exception handling. The following are typical HDL constructs for modeling these mechanisms: ■ wait(condition) can specify a fixed amount of delay or an event occurrence. Its implementation can either translate it as a busy-wait loop (while(!condition);) or associate it with a specific communication structure (for example, event broadcasting in the Esterel programming language1). Typically, designers use wait to synchronize operations across simultaneously active modules. In languages that do not assume an implicit communication structure, it also explicitly specifies communication structures for data transfers among hardware modules. ■ watching(port or condition) {block} can be associated with an event (an action instance such as I/O, assignment, or condition setting) for a given block. Designers typically use watching to model the hardware’s handling of interrupt events. HDLs that provide this construct are considerably more powerful than traditional programming languages and other models. For instance, Esterel provides watching by encasing a behavior in a do {block} watching signal. As the number of these signals (or interrupts) increases, an equivalent finite-state model’s size increases exponentially, whereas the Esterel program grows only linearly. ■ disable(name) provides limited exception handling, such as termination of a block of behavior associated with a specific exception condition. Hierarchical disable operations (in Verilog, for example) execute and/or terminate specific process blocks to prescribe the extent of the exception handling. The net effect of using disable to suspend execution of a simultaneously active process is to issue an interrupt on the named process. In other words, disable is a senderside analog of watching. Determinism. At any level of abstraction, system simulation should be predictable, yielding the same outputs from the same sequence of inputs. Although a modeled behavior may be nondeterministic or even indeterminate4—that is, we may not have complete information to predict this unique behavior—we can always decompose it into deterministic parts. Simultaneity. We often need simultaneous actions to model hardware’s inherent parallelism. One programminglanguage mechanism for modeling parallelism is concurrent compositions. In these compositions, concurrency control is critical. We usually introduce serialization in concurrent compositions if a dependency exists between concurrent actions or if one of the actions represents a break in the control flow. Serialization preserves the natural semantics of continue and break statements. Using concurrency to model hardware parallelism is not very efficient for two main reasons. First, in process-level concurrency,5 communication is a synchronizing activity. In contrast, parallel hardware actions often proceed independently, and even in cases where the actions communicate, rarely do they require explicit synchronization. Second, during interpretation, the time synchronization takes is un.
منابع مشابه
A Microcomputer-Based Simulator for Digital Control Systems
A microcomputer-based simulator for digital control systems is proposed. The proposed simulator is a hybrid system in which the plant is simulated by conventional method of analog computers and other parts of the system including generation of input signal is performed digitally, using a Z-80 based microcomputer. To overcome the difficulty of programming in assembly language, and at the same ti...
متن کاملOPTIMAL DESIGN OF SINGLE-LAYER BARREL VAULT FRAMES USING IMPROVED MAGNETIC CHARGED SYSTEM SEARCH
The objective of this paper is to present an optimal design for single-layer barrel vault frames via improved magnetic charged system search (IMCSS) and open application programming interface (OAPI). The IMCSS algorithm is utilized as the optimization algorithm and the OAPI is used as an interface tool between analysis software and the programming language. In the proposed algorithm, magnetic c...
متن کاملBrake System Design for Sports Cars using Digital Logic Method
Brake system performance significantly affects safety, handling and vehicle dynamics. Therefore, the objective of this paper is to discuss brake system characteristics and performance and component design parameters. We perform a detailed study of a specific brake system designed for Mercedes-AMG SLC-43, considering component design parameters and operational points, and finally conduct the veh...
متن کاملDigital Sound Recorder: A case study on designing embedded systems using the UML notation
This document is an example of the object-oriented analysis and design of an embedded system using the Unified Modelling Language (UML). The analysed system is a digital sound recorder, or Dictaphone. The design has been implemented using an embedded processor and the C++ programming language.
متن کاملDesign and evaluation of validity of an electronic alternative and augmentative communication system for Persian-speaking children
Introduction: Due to the high prevalence of communication disorders, augmentative and alternative communication methods are one the options ahead to solve the problems of these people. Since there are no complex tools for Persian-speaking children with communication disorders, we decided to design communication assistant software for these children that produces sound output. Materials and Meth...
متن کاملDesign and Implementation of Digital Demodulator for Frequency Modulated CW Radar (RESEARCH NOTE)
Radar Signal Processing has been an interesting area of research for realization of programmable digital signal processor using VLSI design techniques. Digital Signal Processing (DSP) algorithms have been an integral design methodology for implementation of high speed application specific real-time systems especially for high resolution radar. CORDIC algorithm, in recent times, is turned out to...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- IEEE Design & Test of Computers
دوره 14 شماره
صفحات -
تاریخ انتشار 1997